UML2 pour les développeurs by X. Blanc I. Mounier

UML2 pour les développeurs by X. Blanc I. Mounier

Auteur:X. Blanc, I. Mounier [X. Blanc, I. Mounier]
La langue: fra
Format: epub
Tags: Informatique
Éditeur: inconnu
Publié: 2006-09-05T12:25:57+00:00


UML pour les développeurs

94

Synthèse

Nous avons vu dans ce chapitre que les modèles que nous avons présentés jusqu’ici étaient fortement dépendants de la plate-forme Java. Forts de ce constat, nous avons introduit la notion de modèle pour Java et de modèle 100 % UML.

Nous avons montré que les modèles pour Java et les modèles 100 % UML étaient complémentaires et qu’ils offraient des gains différents. Les modèles pour Java apportent des gains de productivité, tandis que les modèles 100 % UML apportent des gains de pérennité et de gestion de la complexité.

Nous avons ensuite précisé la relation d’abstraction qui existait entre ces deux niveaux. Les modèles 100 % UML sont des abstractions des modèles UML pour Java, car ils masquent les détails techniques de la plate-forme Java. Ainsi, les modèles 100 % UML spécifient la logique métier de l’application, alors que les modèles UML

pour Java spécifient la façon dont est utilisée la plate-forme Java pour réaliser l’application.

Nous avons en outre expliqué pourquoi il était plus naturel de considérer ces deux types de modèles non pas comme des modèles indépendants, mais comme des parties différentes d’un même modèle, situées à différents niveaux d’abstraction. Nous avons alors précisé comment ces deux niveaux d’abstraction (conceptuel et physique) étaient intégrés à notre vision schématique des modèles UML d’applications.

Pour finir, nous avons introduit les deux façons envisageables de suivre un cycle de développement avec UML, en précisant qu’il n’était pas obligatoire de mettre en œuvre le niveau conceptuel; tout dépendant des bénéfices que nous souhaitions obtenir du modèle UML.

Tr a v a u x d i r i g é s

TD8. Plates-formes d’exécution

Question 68. Le diagramme de l’agence de voyage représenté à la figure 8.2 correspond-il à un modèle conceptuel ou à un modèle physique ?

Question 69. Pensez-vous qu’il soit intéressant d’appliquer des patrons de conception sur les modèles conceptuels ?

Question 70. Le diagramme de séquence représenté à la figure 8.3 est-il conceptuel ou physique ? Vous noterez qu’il fait intervenir une opération qui n’apparaît pas dans le diagramme de classes initial. Quelle classe doit posséder cette opération ?

Plates-formes d’exécution

95

CHAPITRE 8

Figure 8.2

Reservation

Diagramme

Hotel

hotel

de l’agence

-dateArrivee:string

-name:string

-dateDepart:string

de voyage

0..1

*

+setHotel()

hotelPropose

*

reservationEffectuee

AgenceDeVoyage

+obtenirReservation()

+demanderTarifs()

client:

ag:AgenceDeVoyage

obtenirReservation("Ritz","15juin","16juin") création

resa:Reservation

addReservationEffectuee(resa)

ok

Figure 8.3

Interaction représentant une réservation

Question 71. Serait-il possible de spécifier en « 100 % UML » le comportement de l’agence de voyage ?

Question 72. Serait-il possible de spécifier en « 100 % UML » des tests pour l’agence de voyage ? Justifiez l’intérêt de ces tests.

Question 73. Le diagramme représenté à la figure 8.4 est une concrétisation du diagramme conceptuel de l’agence de voyage. Exprimez les relations

d’abstraction entre les éléments des deux diagrammes.

UML pour les développeurs

96

Reservation

Hotel

hotel

-dateArrivee:string

-name:string

-dateDepart:string

0..1

reservationEffectuee

0..1

ArrayList

AgenceDeVoyage

+obtenirReservation()

+demanderTarifs()

0..1

hotelPropose

Iterator

Reservation res=nul ;

+next()

for (Iterator it = reservationEffectuee.iterator() ; it.hasNext() ; ) {

+hasNext()

Reservation current = (Reservation) it.next();

if (current.dateArrivee == dateArrivee

&& current.dateDepart == dateDepart

&& current.hotel.name == hotelName) return current;

}

res = new Reservation(dateArrivee , dateDepart);

res.setHotel(new Hotel());

return res;

}

Figure 8.4

Classes du niveau physique de l’agence de voyage

Question 74. Quel est l’intérêt d’avoir fait apparaître les classes ArrayList et Iterator dans le modèle concret (considérez en particulier la génération de code et le Reverse Engineering) ?

Question 75. Construisez le diagramme de séquence concrétisant le diagramme de séquence présenté à la question 69.



Télécharger



Déni de responsabilité:
Ce site ne stocke aucun fichier sur son serveur. Nous ne faisons qu'indexer et lier au contenu fourni par d'autres sites. Veuillez contacter les fournisseurs de contenu pour supprimer le contenu des droits d'auteur, le cas échéant, et nous envoyer un courrier électronique. Nous supprimerons immédiatement les liens ou contenus pertinents.